Ignore:
Timestamp:
2011-01-22T16:39:26+01:00 (14 years ago)
Author:
guggis
Message:

Fixed help context

Location:
applications/editors/josm/plugins/scripting
Files:
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/scripting/scripts/AddHouseNumbers.groovy

    r25107 r25110  
     1/*
     2 * This scripts sets a sequence of consecutive house numbers on the currently selected nodes.
     3 * 
     4 */
     5import java.awt.event.WindowAdapter;
    16
    2 /*
    3  * This scripts sets a sequence of house numbers on the currently selected nodes.
    4  *
    5  * The user can enter a start number and and an increment.
    6  */
    77
    88import java.awt.BorderLayout;
     
    1010
    1111import java.awt.event.KeyEvent;
     12import java.awt.event.WindowAdapter;
     13import java.awt.event.WindowListener;
    1214
    1315import javax.swing.KeyStroke;
    1416
    1517import groovy.swing.SwingBuilder;
     18import groovy.util.ProxyGenerator;
     19
    1620import javax.swing.JOptionPane;
    1721import org.openstreetmap.josm.Main;
     
    3539import java.awt.GridBagLayout;
    3640import javax.swing.JLabel;
     41import java.awt.event.FocusListener;
    3742
    3843import javax.swing.Action;
     
    4348import java.awt.event.ActionListener;
    4449import java.awt.Dimension;
     50import java.awt.Dialog.ModalityType;
     51import java.awt.event.WindowEvent;
    4552
    4653class AddHouseNumberDialog extends JDialog {
     
    5663        private JTextField tfStart;
    5764        private JTextField tfIncrement;
     65        private def actApply;
    5866       
    5967        public AddHouseNumberDialog(){
    60                 super(Main.parent, true /* modal */)
     68                super(Main.parent,true)
    6169                build();
    6270        }
     
    95103                SwingBuilder swing = new SwingBuilder()
    96104                return swing.panel(layout: new FlowLayout(FlowLayout.CENTER)) {
    97                     def actApply = action(name: "Apply", smallIcon: ImageProvider.get("ok"), closure: {apply(); setVisible(false)})
     105                    actApply = action(name: "Apply", smallIcon: ImageProvider.get("ok"), closure: {apply(); setVisible(false)})
    98106                        def btnApply = button(action: actApply)
    99107                        btnApply.setFocusable(true)
     
    114122                        return
    115123                }
    116                 def cmds = getCurrentlySelectedNodes().collect { Node n ->
     124                def nodes = Main?.map?.mapView?.editLayer?.data?.getSelectedNodes()?.asList()
     125                if (nodes == null || nodes.isEmpty()) return
     126                def cmds = nodes.collect { Node n ->
    117127                        Node nn = new Node(n)
    118128                        nn.put("addr:housenumber", start.toString())
     
    120130                        return new ChangeCommand(n, nn)                 
    121131                }
    122                 if (cmds.isEmpty()) return
    123132                Main.main.undoRedo.add(new SequenceCommand("Setting house numbers", cmds))
    124133        }
     
    131140                cp.add(buildInputPanel(), BorderLayout.CENTER)
    132141                cp.add(buildControlButtonPanel(), BorderLayout.SOUTH)
    133         }       
    134        
    135         def getCurrentDataSet() {
    136                 def layer = Main?.map?.mapView?.activeLayer
    137                 if (layer == null) return null
    138                 if (! (layer instanceof OsmDataLayer)) return null
    139                 return layer.data
    140         }
    141        
    142         def getCurrentlySelectedNodes() {
    143                 def DataSet ds = getCurrentDataSet()
    144                 if (ds == null) return []
    145                 return ds.getSelectedNodes().asList()
    146         }
     142               
     143                addWindowListener([windowActivated: {tfStart.requestFocusInWindow()}] as WindowAdapter)
     144                getRootPane().registerKeyboardAction(actApply, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,KeyEvent.CTRL_MASK, false), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
     145        }               
    147146
    148147        @Override
  • applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/RunScriptAction.java

    r25019 r25110  
    44import java.awt.event.KeyEvent;
    55
     6import javax.swing.KeyStroke;
     7
    68import org.openstreetmap.josm.Main;
    79import org.openstreetmap.josm.actions.JosmAction;
     10import org.openstreetmap.josm.gui.help.HelpUtil;
    811import org.openstreetmap.josm.tools.ImageProvider;
    912import org.openstreetmap.josm.tools.Shortcut;
     
    2023                );             
    2124                putValue(MNEMONIC_KEY, KeyEvent.VK_R);
     25                putValue("help", HelpUtil.ht("/Plugin/Scripting"));
    2226        }
    2327
  • applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/RunScriptDialog.java

    r25107 r25110  
    1111import java.awt.Insets;
    1212import java.awt.event.ActionEvent;
     13import java.awt.event.WindowAdapter;
     14import java.awt.event.WindowEvent;
    1315import java.io.File;
    1416import java.io.FileReader;
     
    2426import javax.script.ScriptException;
    2527import javax.swing.AbstractAction;
     28import javax.swing.Action;
    2629import javax.swing.JButton;
     30import javax.swing.JComponent;
    2731import javax.swing.JDialog;
    2832import javax.swing.JFileChooser;
     
    3135import javax.swing.JPanel;
    3236import javax.swing.JTextField;
     37import javax.swing.KeyStroke;
    3338import javax.swing.SwingUtilities;
    3439
    3540import org.openstreetmap.josm.Main;
     41import org.openstreetmap.josm.gui.HelpAwareOptionPane;
    3642import org.openstreetmap.josm.gui.SideButton;
    3743import org.openstreetmap.josm.gui.help.ContextSensitiveHelpAction;
     
    4147import org.openstreetmap.josm.gui.widgets.SelectAllOnFocusGainedDecorator;
    4248import org.openstreetmap.josm.plugins.scripting.preferences.PreferenceKeys;
     49import org.openstreetmap.josm.plugins.scripting.util.IOUtil;
    4350import org.openstreetmap.josm.tools.ImageProvider;
    4451import org.openstreetmap.josm.tools.WindowGeometry;
     
    5360        /** the input field for the script file name */
    5461        private HistoryComboBox cbScriptFile;
     62        private Action actRun;
    5563       
    5664        /**
     
    6068         */
    6169        public RunScriptDialog(Component parent) {
    62                 super(JOptionPane.getFrameForComponent(parent), true);
     70                super(JOptionPane.getFrameForComponent(parent), ModalityType.DOCUMENT_MODAL);
    6371                build();
     72                HelpUtil.setHelpContext(this.getRootPane(), HelpUtil.ht("/Plugin/Scripting"));
    6473        }
    6574       
     
    7887        protected JPanel buildControlButtonPanel() {
    7988                JPanel pnl = new JPanel(new FlowLayout(FlowLayout.CENTER));
    80                 pnl.add(new SideButton(new RunAction()));
     89                JButton btn;
     90               
     91                pnl.add(btn = new SideButton(actRun = new RunAction()));
     92                btn.setFocusable(true);
     93                btn.registerKeyboardAction(actRun, KeyStroke.getKeyStroke("ENTER"), JComponent.WHEN_FOCUSED);
    8194                pnl.add(new SideButton(new CancelAction()));
    82                 pnl.add(new SideButton(new ContextSensitiveHelpAction(HelpUtil.ht("/Plugin/Macro#Run"))));
     95                pnl.add(new SideButton(new ContextSensitiveHelpAction(HelpUtil.ht("/Plugin/Scripting#Run"))));
    8396                return pnl;
    8497        }
     
    108121                gc.fill = GridBagConstraints.BOTH;
    109122                gc.insets = new Insets(3,0 /* no spacing to the left */,3,3);
    110                 pnl.add(new JButton(new SelectMacroFileAction()), gc);
     123                JButton btn;
     124                pnl.add(btn = new JButton(new SelectMacroFileAction()), gc);
     125                btn.setFocusable(false);
    111126                               
    112127                // just a filler
     
    135150                getContentPane().add(buildContentPanel(), BorderLayout.CENTER);
    136151               
     152                getRootPane().registerKeyboardAction(actRun, KeyStroke.getKeyStroke("ctrl ENTER"), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
    137153                setTitle(tr("Run a script"));
    138154                setSize(600, 150);
     155               
     156                addWindowListener(new WindowAdapter() {
     157                        @Override
     158                        public void windowActivated(WindowEvent e) {
     159                                cbScriptFile.requestFocusInWindow();
     160                        }                       
     161                });
    139162        }
    140163       
     
    194217                                        tr("File not found"),
    195218                                        JOptionPane.ERROR_MESSAGE,
    196                                         null // no help topic
     219                                        HelpUtil.ht("/Plugin/Scripting")
    197220                        );                     
    198221                }
     
    204227                                        tr("Empty file name"),
    205228                                        JOptionPane.ERROR_MESSAGE,
    206                                         null // no help topic
     229                                        HelpUtil.ht("/Plugin/Scripting")
    207230                        );                     
    208231                }
     
    214237                                        tr("File not readable"),
    215238                                        JOptionPane.ERROR_MESSAGE,
    216                                         null // no help topic
     239                                        HelpUtil.ht("/Plugin/Scripting")
    217240                        );                     
    218241                }
     
    224247                                        tr("IO error"),
    225248                                        JOptionPane.ERROR_MESSAGE,
    226                                         null // no help topic
     249                                        HelpUtil.ht("/Plugin/Scripting")
    227250                        );                     
    228251                        System.out.println(tr("Failed to read a macro from the file ''{0}''.", f.toString()));
     
    236259                                        tr("Script Error"),
    237260                                        JOptionPane.ERROR_MESSAGE,
    238                                         null // no help topic
     261                                        HelpUtil.ht("/Plugin/Scripting")
    239262                        );                     
    240263                        System.out.println(tr("Macro execution has failed."));
     
    252275                                        + "</html>"
    253276                                        ,
    254                                         tr("No scripting engine"),
    255                                         JOptionPane.ERROR_MESSAGE,
    256                                         null // no help topic
     277                                        tr("No script engine"),
     278                                        JOptionPane.ERROR_MESSAGE,
     279                                        HelpUtil.ht("/Plugin/Scripting")
    257280                        );
    258281                }
     
    292315                        final ScriptEngine engine = getScriptEngine(f);
    293316                        if (engine == null) return;
    294                
     317                        setVisible(false);             
     318
    295319                        SwingUtilities.invokeLater(
    296320                            new Runnable() {
     
    300324                                                        if (engine instanceof Compilable) {
    301325                                                                CompiledScript script = CompiledScriptCache.getInstance().compile((Compilable)engine,f);
    302                                                                 logger.info("running compiled script for " + f);
    303326                                                                script.eval();
    304327                                                        } else {
     
    311334                                                        warnFailedToOpenMacroFile(f, e);
    312335                                                } finally {
    313                                                         if (reader != null){
    314                                                                 try {reader.close();} catch(IOException e) {}
    315                                                         }
     336                                                        IOUtil.close(reader);
    316337                                                }
    317338                                }
    318339                            }
    319                     );
    320                        
    321                         setVisible(false);             
     340                    );         
    322341                }       
    323342        }
  • applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/ScriptEngineSelectionDialog.java

    r25107 r25110  
    8282         */
    8383        public ScriptEngineSelectionDialog(Component parent) {
    84                 super(JOptionPane.getFrameForComponent(parent), true /* modal */);
     84                super(JOptionPane.getFrameForComponent(parent), ModalityType.APPLICATION_MODAL);
    8585                build();
     86                HelpUtil.setHelpContext(getRootPane(), HelpUtil.ht("/Plugin/Scripting"));
    8687        }
    8788       
     
    107108                pnl.add(btn = new SideButton(actCancel = new CancelAction()));
    108109                btn.setFocusable(true);
    109                 pnl.add(btn = new SideButton(new ContextSensitiveHelpAction(HelpUtil.ht("/Plugins/Scripting#SelectScriptingEngine"))));
     110                pnl.add(btn = new SideButton(new ContextSensitiveHelpAction(HelpUtil.ht("/Plugin/Scripting"))));
    110111                btn.setFocusable(true);
    111112               
     
    113114                getRootPane().registerKeyboardAction(
    114115                                actOK, 
    115                                 KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.CTRL_DOWN_MASK),
     116                                KeyStroke.getKeyStroke("ctrl ENTER"),
    116117                                JComponent.WHEN_IN_FOCUSED_WINDOW
    117118                );
     
    120121                getRootPane().registerKeyboardAction(
    121122                                actCancel, 
    122                                 KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
     123                                KeyStroke.getKeyStroke("ESC"),
    123124                                JComponent.WHEN_IN_FOCUSED_WINDOW
    124125                );
  • applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/preferences/ConfigureAction.java

    r25071 r25110  
    1212import org.openstreetmap.josm.Main;
    1313import org.openstreetmap.josm.actions.JosmAction;
     14import org.openstreetmap.josm.gui.help.HelpUtil;
    1415import org.openstreetmap.josm.gui.preferences.PreferenceDialog;
    1516import org.openstreetmap.josm.plugins.scripting.RunScriptDialog;
     
    2425                        false                // don't register
    2526                );             
     27                putValue("help", HelpUtil.ht("/Plugin/Scripting"));
    2628        }
    2729       
     
    6264                         */
    6365                        for(int i=0; i< tp.getTabCount(); i++) {
    64                                 if (getChildByName(tp.getComponentAt(i), "scripting.preferences.editor") != null) {
     66                                if (getChildByName(tp.getComponentAt(i), PreferenceEditor.NAME) != null) {
    6567                                        tp.setSelectedIndex(i);
    6668                                        break;
  • applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/preferences/PreferenceEditor.java

    r25071 r25110  
    1313
    1414public class PreferenceEditor extends JPanel implements PreferenceSetting {
     15        static public final String NAME = "scripting.preferences.editor";
    1516       
    1617        private JTabbedPane tpPreferenceTabs;
     
    3435        JPanel tab = gui.createPreferenceTab("script-engine", tr("Scripting"), description);       
    3536        tab.add(this, GBC.eol().fill(GBC.BOTH));
    36         this.setName("scripting.preferences.editor");
     37        this.setName(NAME);
    3738        }
    3839
Note: See TracChangeset for help on using the changeset viewer.