Changeset 34189 in osm for applications


Ignore:
Timestamp:
2018-05-13T11:38:49+02:00 (7 years ago)
Author:
nzara
Message:

Disable Buttons while cant not be used

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/pdfimport/src/pdfimport/LoadPdfDialog.java

    r33579 r34189  
    1212import java.awt.GridBagConstraints;
    1313import java.awt.GridBagLayout;
    14 import java.awt.GridLayout;
    1514import java.awt.event.ActionEvent;
    1615import java.awt.event.ActionListener;
     
    6160import org.openstreetmap.josm.gui.progress.swing.SwingRenderingProgressMonitor;
    6261import org.openstreetmap.josm.gui.util.WindowGeometry;
     62import org.openstreetmap.josm.spi.preferences.Config;
    6363import org.openstreetmap.josm.tools.ImageProvider;
    6464import org.openstreetmap.josm.tools.Logging;
     
    115115    }
    116116
    117     private File fileName;
     117    private File pdfFile;
    118118    private PathOptimizer data;
    119119    private OsmDataLayer layer;
     
    242242    }
    243243
     244    JPanel projectionPanel = null;
     245    JPanel okCancelPanel = null;
     246
    244247    private void buildGUI() {
    245248        GridBagConstraints c = new GridBagConstraints();
    246249        c.gridheight = 1; c.gridwidth = 1; c.weightx = 1; c.weighty = 1; c.fill = GridBagConstraints.BOTH;
     250        c.insets = new java.awt.Insets(0,0,0,0);
     251//        c.ipadx = 1; c.ipady = 1;
    247252
    248253        this.projectionCombo = new JComboBox<>();
     
    356361
    357362
    358         JPanel projectionPanel = new JPanel(new GridBagLayout());
     363        projectionPanel = new JPanel(new GridBagLayout());
    359364        projectionPanel.setBorder(BorderFactory.createTitledBorder(tr("Bind to coordinates")));
     365//        projectionPanel.setVisible(false);
    360366
    361367        JPanel projectionSubPanel = new JPanel();
     
    365371        projectionSubPanel.add(this.projectionCombo);
    366372        projectionSubPanel.add(this.projectionPreferencesButton);
     373        this.projectionPreferencesButton.setEnabled(false); // ToDo: disabled do avoid bugs
     374
    367375        c.gridx = 0; c.gridy = 0; c.gridwidth = 3;
    368376        projectionPanel.add(projectionSubPanel, c);
     
    403411        projectionPanel.add(this.getMaxButton, c);
    404412
    405         JPanel okCancelPanel = new JPanel(new GridLayout(1, 3));
     413        okCancelPanel = new JPanel(new FlowLayout());
     414//        okCancelPanel.setVisible(false);
    406415        okCancelPanel.add(this.cancelButton);
    407416        okCancelPanel.add(this.showButton);
     
    412421        c.gridx = 0; c.gridy = 0; c.gridwidth = 1;
    413422        panel.add(configPanel, c);
    414         c.gridx = 0; c.gridy = 1; c.gridwidth = 1;
     423        c.gridx = 0; c.gridy = 1; c.gridwidth = 1; c.fill = GridBagConstraints.HORIZONTAL;
    415424        panel.add(loadFileButton, c);
    416425        c.gridx = 0; c.gridy = 2; c.gridwidth = 1;
     
    418427        c.gridx = 0; c.gridy = 3; c.gridwidth = 1;
    419428        panel.add(okCancelPanel, c);
    420         c.gridx = 0; c.gridy = 4; c.gridwidth = 1;
     429        c.gridx = 0; c.gridy = 4; c.gridwidth = 1; c.anchor = GridBagConstraints.NORTH; c.fill = GridBagConstraints.HORIZONTAL;
    421430        panel.add(this.loadProgress, c);
    422431
     
    556565                    public void run() {
    557566                        //async part
     567                        LoadPdfDialog.this.loadProgress.setVisible(true);
    558568                        SwingRenderingProgressMonitor monitor = new SwingRenderingProgressMonitor(progressRenderer);
    559569                        monitor.beginTask("Loading file", 1000);
     
    577587                        if (data != null) {
    578588                            LoadPdfDialog.this.placeLayer(newLayer, new FilePlacement());
    579                             fileName = newFileName;
     589                            pdfFile = newFileName;
    580590                            newLayer = null;
    581                             LoadPdfDialog.this.loadFileButton.setText(tr("Loaded"));
     591                            LoadPdfDialog.this.loadFileButton.setText(tr("Loaded") + ": " + LoadPdfDialog.this.pdfFile.getName());
    582592                            LoadPdfDialog.this.loadFileButton.setEnabled(true);
    583593                            FilePlacement placement = LoadPdfDialog.this.loadPlacement();
     
    619629                    public void run() {
    620630                        //async part
     631                        LoadPdfDialog.this.loadProgress.setVisible(true);
    621632                        SwingRenderingProgressMonitor monitor = new SwingRenderingProgressMonitor(progressRenderer);
    622633                        LoadPdfDialog.this.newLayer = LoadPdfDialog.this.makeLayer(
    623                                 tr("Imported PDF: ") + fileName, placement, OsmBuilder.Mode.Final, monitor);
     634                                tr("Imported PDF: ") + pdfFile, placement, OsmBuilder.Mode.Final, monitor);
    624635                        progressRenderer.finish();
    625636                    }
     
    722733    }
    723734
     735    private static JFileChooser loadChooser = null;
     736
    724737    private java.io.File chooseFile() {
    725         //get file name
    726         JFileChooser fc = new JFileChooser();
    727         fc.setAcceptAllFileFilterUsed(false);
    728         fc.setMultiSelectionEnabled(false);
    729         fc.setSelectedFile(this.fileName);
    730         fc.setFileFilter(new FileFilter() {
    731             @Override
    732             public boolean accept(java.io.File pathname) {
    733                 return pathname.isDirectory() || pathname.getName().endsWith(".pdf");
    734             }
    735 
    736             @Override
    737             public String getDescription() {
    738                 return tr("PDF files");
    739             }
    740         });
    741         int result = fc.showOpenDialog(Main.parent);
     738        //get PDF file to load
     739        if (loadChooser == null) {
     740                loadChooser = new JFileChooser(Config.getPref().get("plugins.pdfimport.loadDir"));
     741                loadChooser.setAcceptAllFileFilterUsed(false);
     742                loadChooser.setMultiSelectionEnabled(false);
     743                loadChooser.setFileFilter(new FileFilter() {
     744                        @Override
     745                        public boolean accept(java.io.File pathname) {
     746                                return pathname.isDirectory() || pathname.getName().endsWith(".pdf");
     747                        }
     748
     749                        @Override
     750                        public String getDescription() {
     751                                return tr("PDF files");
     752                        }
     753                });
     754        } else {
     755                loadChooser.rescanCurrentDirectory();
     756        }
     757        int result = loadChooser.showOpenDialog(this);
    742758
    743759        if (result != JFileChooser.APPROVE_OPTION) {
    744760            return null;
    745761        } else {
    746             return fc.getSelectedFile();
     762            return loadChooser.getSelectedFile();
    747763        }
    748764    }
     
    9931009        this.minNorthField.setText(Double.toString(placement.minNorth));
    9941010        this.maxNorthField.setText(Double.toString(placement.maxNorth));
     1011        projectionPanel.setEnabled(true);
     1012        okCancelPanel.setEnabled(true);;
     1013        this.showButton.setEnabled(true);
     1014        this.saveButton.setEnabled(true);
     1015        this.okButton.setEnabled(true);
     1016        this.getMaxButton.setEnabled(true);
     1017        this.getMinButton.setEnabled(true);
    9951018    }
    9961019
     
    9981021        FilePlacement pl = null;
    9991022        //load saved transformation
    1000         File propertiesFile = new File(fileName.getAbsoluteFile()+ ".placement");
     1023        File propertiesFile = new File(pdfFile.getAbsoluteFile() + ".placement");
    10011024        try {
    10021025
     
    10171040    private void savePlacement(FilePlacement pl) {
    10181041        //load saved transformation
    1019         File propertiesFile = new File(fileName.getAbsoluteFile()+ ".placement");
     1042        File propertiesFile = new File(pdfFile.getAbsoluteFile()+ ".placement");
    10201043        try {
    10211044            Properties p = pl.toProperties();
     
    10521075            this.layer = null;
    10531076        }
     1077//        projectionPanel.setVisible(false);
     1078//        okCancelPanel.setVisible(false);
     1079//        loadProgress.setVisible(false);
     1080        this.showButton.setEnabled(false);
     1081        this.saveButton.setEnabled(false);
     1082        this.okButton.setEnabled(false);
     1083        this.getMaxButton.setEnabled(false);
     1084        this.getMinButton.setEnabled(false);
     1085
    10541086    }
    10551087
Note: See TracChangeset for help on using the changeset viewer.