Ticket #6629: coloringpatch2patch2.patch

File coloringpatch2patch2.patch, 10.8 KB (added by akks, 15 years ago)
  • org/openstreetmap/josm/gui/layer/GpxLayer.java

     
    14061406
    14071407        @Override
    14081408        public void actionPerformed(ActionEvent e) {
    1409             GPXSettingsPanel panel=new GPXSettingsPanel(getName());
     1409            boolean hasLocal=false, hasNonlocal=false;
     1410            for(Layer layer : layers) {
     1411                if (layer instanceof GpxLayer) {
     1412                    if (((GpxLayer)layer).isLocalFile) hasLocal=true;
     1413                    else hasNonlocal=true;
     1414                }
     1415            }
     1416           
     1417            GPXSettingsPanel panel=new GPXSettingsPanel(getName(), hasLocal, hasNonlocal );
    14101418            int answer = JOptionPane.showConfirmDialog(Main.parent, panel,
    14111419                    tr("Customize track drawing"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
    14121420            if (answer == JOptionPane.CANCEL_OPTION || answer == JOptionPane.CLOSED_OPTION) return;
    14131421            for(Layer layer : layers) {
    14141422                // save preferences for all layers
    1415                 panel.savePreferences(layer.getName());
     1423                boolean f=false;
     1424                if (layer instanceof GpxLayer) f=((GpxLayer)layer).isLocalFile;
     1425                panel.savePreferences(layer.getName(),f);
    14161426            }
    14171427            Main.map.repaint();
    14181428        }
  • org/openstreetmap/josm/gui/preferences/GPXSettingsPanel.java

     
    4848    private JComboBox waypointLabel = new JComboBox(new String[] {tr("Auto"), /* gpx data field name */ trc("gpx_field", "Name"),
    4949            /* gpx data field name */ trc("gpx_field", "Desc(ription)"), tr("Both"), tr("None")});
    5050    private String spec;
    51     private String specSp = "";
    52 
    53     public GPXSettingsPanel(String layerName) {
     51    private boolean local; // flag to display Localonly checkbox
     52    private boolean nonlocal; // flag to display All lines checkbox
     53   
     54    public GPXSettingsPanel(String layerName, boolean local, boolean nonlocal) {
    5455        super(new GridBagLayout());
    5556        this.spec="layer "+layerName;
    56         specSp = ".layer "+spec;
     57        this.local=local; this.nonlocal=nonlocal;
    5758        initComponents();
    5859        loadPreferences();
    5960    }
    6061
    6162    public GPXSettingsPanel() {
    6263        super(new GridBagLayout());
     64        local=false;
    6365        initComponents();
    6466        loadPreferences(); // preferences -> controls
    6567    }
     
    8284        add(new JLabel(tr("Draw lines between raw GPS points")), GBC.eol().insets(20,0,0,0));
    8385        if (spec!=null) add(drawRawGpsLinesGlobal, GBC.eol().insets(40,0,0,0));
    8486        add(drawRawGpsLinesNone, GBC.eol().insets(40,0,0,0));
    85         add(drawRawGpsLinesLocal, GBC.eol().insets(40,0,0,0));
    86         add(drawRawGpsLinesAll, GBC.eol().insets(40,0,0,0));
    87 
     87        if (spec==null || local) add(drawRawGpsLinesLocal, GBC.eol().insets(40,0,0,0));
     88        if (spec==null || nonlocal) add(drawRawGpsLinesAll, GBC.eol().insets(40,0,0,0));
     89       
    8890        drawRawGpsLinesActionListener = new ActionListener(){
    8991            public void actionPerformed(ActionEvent e) {
    9092                boolean f=drawRawGpsLinesNone.isSelected()||drawRawGpsLinesGlobal.isSelected();
     
    200202     * Loads preferences to UI controls
    201203     */
    202204    public void loadPreferences () {
     205        String specSp = "";
     206        if (spec!=null) specSp = "."+spec;
     207
    203208        makeAutoMarkers.setSelected(Main.pref.getBoolean("marker.makeautomarkers", true));
    204         if(spec!=null && !Main.pref.hasKey("draw.rawgps.lines."+spec)
    205                 && !Main.pref.hasKey("draw.rawgps.lines.local"+spec)){
     209        if(spec!=null && !Main.pref.hasKey("draw.rawgps.lines"+specSp)
     210                && !Main.pref.hasKey("draw.rawgps.lines.local"+specSp)){
    206211            // no line preferences for layer is found
    207212            drawRawGpsLinesGlobal.setSelected(true);
    208213        } else {
    209             Boolean lf = Main.pref.getBoolean("draw.rawgps.lines.local",spec, true);
    210             if(Main.pref.getBoolean("draw.rawgps.lines",spec, true)) {
     214            Boolean lf = Main.pref.getBoolean("draw.rawgps.lines.local"+specSp, true);
     215            if(Main.pref.getBoolean("draw.rawgps.lines"+specSp, true)) {
    211216                drawRawGpsLinesAll.setSelected(true);
    212217            } else if (lf) {
    213218                drawRawGpsLinesLocal.setSelected(true);
     
    216221            }
    217222        }
    218223
    219         drawRawGpsMaxLineLengthLocal.setText(Integer.toString(Main.pref.getInteger("draw.rawgps.max-line-length.local",spec, -1)));
    220         drawRawGpsMaxLineLength.setText(Integer.toString(Main.pref.getInteger("draw.rawgps.max-line-length",spec, 200)));
    221         forceRawGpsLines.setSelected(Main.pref.getBoolean("draw.rawgps.lines.force",spec, false));
    222         drawGpsArrows.setSelected(Main.pref.getBoolean("draw.rawgps.direction",spec, false));
    223         drawGpsArrowsFast.setSelected(Main.pref.getBoolean("draw.rawgps.alternatedirection",spec, false));
    224         drawGpsArrowsMinDist.setText(Integer.toString(Main.pref.getInteger("draw.rawgps.min-arrow-distance",spec, 40)));
    225         hdopCircleGpsPoints.setSelected(Main.pref.getBoolean("draw.rawgps.hdopcircle",spec, false));
    226         largeGpsPoints.setSelected(Main.pref.getBoolean("draw.rawgps.large",spec, false));
     224        drawRawGpsMaxLineLengthLocal.setText(Integer.toString(Main.pref.getInteger("draw.rawgps.max-line-length.local"+specSp, -1)));
     225        drawRawGpsMaxLineLength.setText(Integer.toString(Main.pref.getInteger("draw.rawgps.max-line-length"+specSp, 200)));
     226        forceRawGpsLines.setSelected(Main.pref.getBoolean("draw.rawgps.lines.force"+specSp, false));
     227        drawGpsArrows.setSelected(Main.pref.getBoolean("draw.rawgps.direction"+specSp, false));
     228        drawGpsArrowsFast.setSelected(Main.pref.getBoolean("draw.rawgps.alternatedirection"+specSp, false));
     229        drawGpsArrowsMinDist.setText(Integer.toString(Main.pref.getInteger("draw.rawgps.min-arrow-distance"+specSp, 40)));
     230        hdopCircleGpsPoints.setSelected(Main.pref.getBoolean("draw.rawgps.hdopcircle"+specSp, false));
     231        largeGpsPoints.setSelected(Main.pref.getBoolean("draw.rawgps.large"+specSp, false));
    227232        drawRawGpsLinesActionListener.actionPerformed(null);
    228233
    229         if(spec!=null && !Main.pref.hasKey("draw.rawgps.colors."+spec)) {
     234        if(spec!=null && !Main.pref.hasKey("draw.rawgps.colors"+specSp)) {
    230235            colorTypeGlobal.setSelected(true);
    231236            colorDynamic.setSelected(false);
    232237            colorDynamic.setEnabled(false);
    233238        } else {
    234          switch(Main.pref.getInteger("draw.rawgps.colors",spec, 0)) {
     239         switch(Main.pref.getInteger("draw.rawgps.colors"+specSp, 0)) {
    235240            case 0: colorTypeNone.setSelected(true);   break;
    236241            case 1: colorTypeVelocity.setSelected(true);  break;
    237242            case 2: colorTypeDilution.setSelected(true);  break;
    238243            case 3: colorTypeDirection.setSelected(true); break;
    239244            case 4: colorTypeTime.setSelected(true);  break;
    240245            }
    241             int ccts = Main.pref.getInteger("draw.rawgps.colorTracksTune",spec, 45);
     246            int ccts = Main.pref.getInteger("draw.rawgps.colorTracksTune"+specSp, 45);
    242247            colorTypeVelocityTune.setSelectedIndex(ccts==10 ? 2 : (ccts==20 ? 1 : 0));
    243248            colorTypeVelocityTune.setEnabled(colorTypeVelocity.isSelected() && colorTypeVelocity.isEnabled());
    244             colorDynamic.setSelected(Main.pref.getBoolean("draw.rawgps.colors.dynamic",spec, false));
     249            colorDynamic.setSelected(Main.pref.getBoolean("draw.rawgps.colors.dynamic"+specSp, false));
    245250            colorDynamic.setEnabled(colorTypeVelocity.isSelected() || colorTypeDilution.isSelected());
    246251        }
    247252        if(spec != null)
     
    255260     * Save preferences from UI controls for specified layer
    256261     * if spec==null, global preferences are written
    257262     */
    258     public boolean savePreferences (String spec) {
     263    public boolean savePreferences (String layerName, boolean locLayer) {
     264        String specSp = "";
     265        if (spec!=null) specSp = ".layer "+layerName;
     266       
    259267        Main.pref.put("marker.makeautomarkers"+specSp, makeAutoMarkers.isSelected());
    260268        if (drawRawGpsLinesGlobal.isSelected()) {
    261             Main.pref.put("draw.rawgps.lines"+specSp, null);
    262             Main.pref.put("draw.rawgps.lines.local"+specSp, null);
    263             Main.pref.put("draw.rawgps.max-line-length"+specSp, null);
    264             Main.pref.put("draw.rawgps.max-line-length.local"+specSp, null);
     269            if (!locLayer)  {
     270                Main.pref.put("draw.rawgps.lines"+specSp, null);
     271                Main.pref.put("draw.rawgps.max-line-length"+specSp, null);
     272            } else {
     273                Main.pref.put("draw.rawgps.lines.local"+specSp, null);
     274                Main.pref.put("draw.rawgps.max-line-length.local"+specSp, null);
     275            }
    265276            Main.pref.put("draw.rawgps.lines.force"+specSp, null);
    266277            Main.pref.put("draw.rawgps.direction"+specSp, null);
    267278            Main.pref.put("draw.rawgps.alternatedirection"+specSp, null);
    268279            Main.pref.put("draw.rawgps.min-arrow-distance"+specSp, null);
    269280        } else {
    270             Main.pref.put("draw.rawgps.lines"+specSp, drawRawGpsLinesAll.isSelected());
    271             Main.pref.put("draw.rawgps.lines.local"+specSp, drawRawGpsLinesAll.isSelected() || drawRawGpsLinesLocal.isSelected());
    272             Main.pref.put("draw.rawgps.max-line-length"+specSp, drawRawGpsMaxLineLength.getText());
    273             Main.pref.put("draw.rawgps.max-line-length.local"+specSp, drawRawGpsMaxLineLengthLocal.getText());
     281            if (!locLayer) {
     282                Main.pref.put("draw.rawgps.lines"+specSp, drawRawGpsLinesAll.isSelected());
     283                Main.pref.put("draw.rawgps.max-line-length"+specSp, drawRawGpsMaxLineLength.getText());
     284            } else {
     285                Main.pref.put("draw.rawgps.lines.local"+specSp, drawRawGpsLinesAll.isSelected() || drawRawGpsLinesLocal.isSelected());
     286                Main.pref.put("draw.rawgps.max-line-length.local"+specSp, drawRawGpsMaxLineLengthLocal.getText());
     287            }
    274288            Main.pref.put("draw.rawgps.lines.force"+specSp, forceRawGpsLines.isSelected());
    275289            Main.pref.put("draw.rawgps.direction"+specSp, drawGpsArrows.isSelected());
    276290            Main.pref.put("draw.rawgps.alternatedirection"+specSp, drawGpsArrowsFast.isSelected());
     
    308322     * Save preferences from UI controls for initial layer or globally
    309323     */
    310324    public void savePreferences() {
    311         savePreferences(null);
     325        savePreferences(null, false);
    312326    }
    313327}