Ticket #1607: DrawingPreference.diff

File DrawingPreference.diff, 9.5 KB (added by Henry Loenwind, 16 years ago)
  • src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java

     
    55
    66import java.awt.event.ActionEvent;
    77import java.awt.event.ActionListener;
     8import java.awt.GridBagLayout;
    89
     10import javax.swing.BorderFactory;
    911import javax.swing.JCheckBox;
    1012import javax.swing.JLabel;
    1113import javax.swing.JTextField;
     14import javax.swing.JScrollPane;
     15import javax.swing.JPanel;
     16import javax.swing.Box;
    1217
    1318import org.openstreetmap.josm.Main;
    1419import org.openstreetmap.josm.tools.GBC;
     
    2328        private JCheckBox directionHint = new JCheckBox(tr("Draw Direction Arrows"));
    2429        private JCheckBox drawGpsArrows = new JCheckBox(tr("Draw Direction Arrows"));
    2530        private JCheckBox drawGpsArrowsFast = new JCheckBox(tr("Fast drawing (looks uglier)"));
     31        private JTextField drawGpsArrowsMinDist = new JTextField(8);
    2632        private JCheckBox interestingDirections = new JCheckBox(tr("Only interesting direction hints (e.g. with oneway tag)."));
    2733        private JCheckBox segmentOrderNumber = new JCheckBox(tr("Draw segment order numbers"));
    2834        private JCheckBox sourceBounds = new JCheckBox(tr("Draw boundaries of downloaded data"));
     
    3137        private JCheckBox useAntialiasing = new JCheckBox(tr("Smooth map graphics (antialiasing)"));
    3238
    3339        public void addGui(PreferenceDialog gui) {
     40                JPanel panel = new JPanel(new GridBagLayout());
     41                panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
     42
    3443                // drawRawGpsLines
    3544                drawRawGpsLines.addActionListener(new ActionListener(){
    3645                        public void actionPerformed(ActionEvent e) {
     
    3847                            drawRawGpsMaxLineLength.setEnabled(drawRawGpsLines.isSelected());
    3948                            drawGpsArrows.setEnabled(drawRawGpsLines.isSelected());
    4049                            drawGpsArrowsFast.setEnabled(drawGpsArrows.isSelected() && drawGpsArrows.isEnabled());
     50                            drawGpsArrowsMinDist.setEnabled(drawGpsArrows.isSelected() && drawGpsArrows.isEnabled());
    4151                            colorTracks.setEnabled(drawRawGpsLines.isSelected());
    4252                        }
    4353                });
    4454                drawRawGpsLines.setSelected(Main.pref.getBoolean("draw.rawgps.lines"));
    4555                drawRawGpsLines.setToolTipText(tr("If your gps device draw too few lines, select this to draw lines along your way."));
    46                 gui.display.add(drawRawGpsLines, GBC.eol().insets(20,0,0,0));
     56                panel.add(drawRawGpsLines, GBC.eol().insets(20,0,0,0));
    4757
    4858                // drawRawGpsMaxLineLength
    4959                drawRawGpsMaxLineLength.setText(Main.pref.get("draw.rawgps.max-line-length", "-1"));
    5060                drawRawGpsMaxLineLength.setToolTipText(tr("Maximum length (in meters) to draw lines. Set to '-1' to draw all lines."));
    5161                drawRawGpsMaxLineLength.setEnabled(drawRawGpsLines.isSelected());
    52                 gui.display.add(new JLabel(tr("Maximum length (meters)")), GBC.std().insets(40,0,0,0));
    53                 gui.display.add(drawRawGpsMaxLineLength, GBC.eol().fill(GBC.HORIZONTAL).insets(5,0,0,5));
     62                panel.add(new JLabel(tr("Maximum length (meters)")), GBC.std().insets(40,0,0,0));
     63                panel.add(drawRawGpsMaxLineLength, GBC.eol().fill(GBC.HORIZONTAL).insets(5,0,0,5));
    5464
    5565                // forceRawGpsLines
    5666                forceRawGpsLines.setToolTipText(tr("Force drawing of lines if the imported data contain no line information."));
    5767                forceRawGpsLines.setSelected(Main.pref.getBoolean("draw.rawgps.lines.force"));
    5868                forceRawGpsLines.setEnabled(drawRawGpsLines.isSelected());
    59                 gui.display.add(forceRawGpsLines, GBC.eop().insets(40,0,0,0));
     69                panel.add(forceRawGpsLines, GBC.eop().insets(40,0,0,0));
    6070               
    6171                // drawGpsArrows
    6272                drawGpsArrows.addActionListener(new ActionListener(){
    6373                        public void actionPerformed(ActionEvent e) {
    6474                            drawGpsArrowsFast.setEnabled(drawGpsArrows.isSelected() && drawGpsArrows.isEnabled());
     75                            drawGpsArrowsMinDist.setEnabled(drawGpsArrows.isSelected() && drawGpsArrows.isEnabled());
    6576                        }
    6677                });
    6778                drawGpsArrows.setToolTipText(tr("Draw direction arrows for lines, connecting GPS points."));
    6879                drawGpsArrows.setSelected(Main.pref.getBoolean("draw.rawgps.direction"));
    6980                drawGpsArrows.setEnabled(drawRawGpsLines.isSelected());
    70                 gui.display.add(drawGpsArrows, GBC.eop().insets(40,0,0,0));
     81                panel.add(drawGpsArrows, GBC.eop().insets(40,0,0,0));
    7182
    7283                // drawGpsArrowsFast
    7384                drawGpsArrowsFast.setToolTipText(tr("Draw the direction arrows using table lookups instead of complex math."));
    7485                drawGpsArrowsFast.setSelected(Main.pref.getBoolean("draw.rawgps.alternatedirection"));
    7586                drawGpsArrowsFast.setEnabled(drawGpsArrows.isSelected() && drawGpsArrows.isEnabled());
    76                 gui.display.add(drawGpsArrowsFast, GBC.eop().insets(60,0,0,0));
     87                panel.add(drawGpsArrowsFast, GBC.eop().insets(60,0,0,0));
    7788
     89                // drawGpsArrowsMinDist
     90                drawGpsArrowsMinDist.setToolTipText(tr("Don't draw arrows if they are not at least this distance away from the last one."));
     91                drawGpsArrowsMinDist.setText(Main.pref.get("draw.rawgps.min-arrow-distance", "0"));
     92                drawGpsArrowsMinDist.setEnabled(drawGpsArrows.isSelected() && drawGpsArrows.isEnabled());
     93                panel.add(new JLabel(tr("Minimum distance (pixels)")), GBC.std().insets(60,0,0,0));
     94                panel.add(drawGpsArrowsMinDist, GBC.eol().fill(GBC.HORIZONTAL).insets(5,0,0,5));
     95
    7896                // colorTracks
    7997                colorTracks.setSelected(Main.pref.getBoolean("draw.rawgps.colors"));
    8098                colorTracks.setToolTipText(tr("Choose the hue for the track color by the velocity at that point."));
    8199                colorTracks.setEnabled(drawRawGpsLines.isSelected());
    82                 gui.display.add(colorTracks, GBC.eop().insets(40,0,0,0));
     100                panel.add(colorTracks, GBC.eop().insets(40,0,0,0));
    83101               
    84102                // largeGpsPoints
    85103                largeGpsPoints.setSelected(Main.pref.getBoolean("draw.rawgps.large"));
    86104                largeGpsPoints.setToolTipText(tr("Draw larger dots for the GPS points."));
    87                 gui.display.add(largeGpsPoints, GBC.eop().insets(20,0,0,0));
     105                panel.add(largeGpsPoints, GBC.eop().insets(20,0,0,0));
    88106               
     107                panel.add(Box.createVerticalGlue(), GBC.eol().fill(GBC.BOTH));
     108                JScrollPane scrollpane = new JScrollPane(panel);
     109                scrollpane.setBorder(BorderFactory.createEmptyBorder( 0, 0, 0, 0 ));
     110                gui.displaycontent.addTab(tr("GPS Points"), scrollpane);
     111                panel = new JPanel(new GridBagLayout());
     112                panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
     113
    89114                // directionHint
    90115                directionHint.addActionListener(new ActionListener(){
    91116                        public void actionPerformed(ActionEvent e) {
     
    99124                });
    100125                directionHint.setToolTipText(tr("Draw direction hints for way segments."));
    101126                directionHint.setSelected(Main.pref.getBoolean("draw.segment.direction"));
    102                 gui.display.add(directionHint, GBC.eop().insets(20,0,0,0));
     127                panel.add(directionHint, GBC.eop().insets(20,0,0,0));
    103128
    104129                // only interesting directions
    105130                interestingDirections.setToolTipText(tr("Only interesting direction hints (e.g. with oneway tag)."));
    106131                interestingDirections.setSelected(Main.pref.getBoolean("draw.segment.relevant_directions_only"));
    107132                interestingDirections.setEnabled(directionHint.isSelected());
    108                 gui.display.add(interestingDirections, GBC.eop().insets(40,0,0,0));
     133                panel.add(interestingDirections, GBC.eop().insets(40,0,0,0));
    109134               
    110135                // segment order number
    111136                segmentOrderNumber.setToolTipText(tr("Draw the order numbers of all segments within their way."));
    112137                segmentOrderNumber.setSelected(Main.pref.getBoolean("draw.segment.order_number"));
    113                 gui.display.add(segmentOrderNumber, GBC.eop().insets(20,0,0,0));
     138                panel.add(segmentOrderNumber, GBC.eop().insets(20,0,0,0));
    114139               
    115140                // antialiasing
    116141                useAntialiasing.setToolTipText(tr("Apply antialiasing to the map view resulting in a smoother appearance."));
    117142                useAntialiasing.setSelected(Main.pref.getBoolean("mappaint.use-antialiasing"));
    118                 gui.display.add(useAntialiasing, GBC.eop().insets(20,0,0,0));
     143                panel.add(useAntialiasing, GBC.eop().insets(20,0,0,0));
    119144               
    120145                // downloaded area
    121146                sourceBounds.setToolTipText(tr("Draw the boundaries of data loaded from the server."));
    122147                sourceBounds.setSelected(Main.pref.getBoolean("draw.data.downloaded_area", true));
    123                 gui.display.add(sourceBounds, GBC.eop().insets(20,0,0,0));
     148                panel.add(sourceBounds, GBC.eop().insets(20,0,0,0));
    124149
    125150                // virtual nodes
    126151                virtualNodes.setToolTipText(tr("Draw virtual nodes in select mode for easy way modification."));
    127152                virtualNodes.setSelected(Main.pref.getInteger("mappaint.node.virtual-size", 8) != 0);
    128                 gui.display.add(virtualNodes, GBC.eop().insets(20,0,0,0));
     153                panel.add(virtualNodes, GBC.eop().insets(20,0,0,0));
    129154
    130155                // background layers in inactive color
    131156                inactive.setToolTipText(tr("Draw the inactive data layers in a different color."));
    132157                inactive.setSelected(Main.pref.getBoolean("draw.data.inactive_color", true));
    133                 gui.display.add(inactive, GBC.eop().insets(20,0,0,0));
     158                panel.add(inactive, GBC.eop().insets(20,0,0,0));
     159
     160                panel.add(Box.createVerticalGlue(), GBC.eol().fill(GBC.BOTH));
     161                scrollpane = new JScrollPane(panel);
     162                scrollpane.setBorder(BorderFactory.createEmptyBorder( 0, 0, 0, 0 ));
     163                gui.displaycontent.addTab(tr("OSM Data"), scrollpane);
    134164        }
    135165
    136166        public void ok() {
     
    139169                Main.pref.put("draw.rawgps.lines.force", forceRawGpsLines.isSelected());
    140170                Main.pref.put("draw.rawgps.direction", drawGpsArrows.isSelected());
    141171                Main.pref.put("draw.rawgps.alternatedirection", drawGpsArrowsFast.isSelected());
     172                Main.pref.put("draw.rawgps.min-arrow-distance", drawGpsArrowsFast.getText());
    142173                Main.pref.put("draw.rawgps.colors", colorTracks.isSelected());
    143174                Main.pref.put("draw.rawgps.large", largeGpsPoints.isSelected());
    144175                Main.pref.put("draw.segment.direction", directionHint.isSelected());