Changeset 2485 in josm


Ignore:
Timestamp:
2009-11-19T21:58:09+01:00 (14 years ago)
Author:
jttt
Message:

Update relation list dialog only when dialog is visible (not even collapsed), call keysChangedImpl in OsmPrimitive when keys are changed

Location:
trunk/src/org/openstreetmap/josm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/Main.java

    r2371 r2485  
    7070
    7171abstract public class Main {
    72    
     72
    7373    /**
    7474     * Replies true if JOSM currently displays a map view. False, if it doesn't, i.e. if
     
    165165    public final void setMapFrame(final MapFrame map) {
    166166        MapFrame old = Main.map;
    167         Main.map = map;
    168167        panel.setVisible(false);
    169168        panel.removeAll();
     
    176175        panel.setVisible(true);
    177176        redoUndoListener.commandChanged(0,0);
     177
     178        Main.map = map;
    178179
    179180        PluginHandler.setMapFrame(old, map);
     
    414415            dialog.setVisible(true);
    415416            switch(dialog.getUserAction()) {
    416                 case CANCEL: return false;
    417                 case PROCEED: return true;
    418                 default: return false;
     417            case CANCEL: return false;
     418            case PROCEED: return true;
     419            default: return false;
    419420            }
    420421        }
     
    481482        if (st.countTokens() == 4) {
    482483            Bounds b = new Bounds(
    483                    new LatLon(Double.parseDouble(st.nextToken()),Double.parseDouble(st.nextToken())),
    484                    new LatLon(Double.parseDouble(st.nextToken()),Double.parseDouble(st.nextToken()))
    485                    );
     484                    new LatLon(Double.parseDouble(st.nextToken()),Double.parseDouble(st.nextToken())),
     485                    new LatLon(Double.parseDouble(st.nextToken()),Double.parseDouble(st.nextToken()))
     486            );
    486487            try {
    487488                DownloadTask task = rawGps ? new DownloadGpsTask() : new DownloadOsmTask();
  • trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java

    r2482 r2485  
    654654        } else if (keys == null || keys.length == 0){
    655655            keys = new String[] {key, value};
     656            keysChangedImpl();
    656657        } else {
    657658            for (int i=0; i<keys.length;i+=2) {
    658659                if (keys[i].equals(key)) {
    659660                    keys[i+1] = value;
     661                    keysChangedImpl();
    660662                    return;
    661663                }
     
    669671            newKeys[keys.length + 1] = value;
    670672            keys = newKeys;
     673            keysChangedImpl();
    671674        }
    672675    }
     
    682685        if (keys.length == 2) {
    683686            keys = null;
     687            keysChangedImpl();
    684688            return;
    685689        }
     
    693697        }
    694698        keys = newKeys;
     699        keysChangedImpl();
    695700    }
    696701
  • trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java

    r2484 r2485  
    1818import java.util.HashSet;
    1919import java.util.List;
    20 import java.util.logging.Logger;
    2120
    2221import javax.swing.AbstractAction;
     
    6261 */
    6362public class RelationListDialog extends ToggleDialog implements LayerChangeListener, DataSetListener {
    64     private static final Logger logger = Logger.getLogger(RelationListDialog.class.getName());
     63    //private static final Logger logger = Logger.getLogger(RelationListDialog.class.getName());
    6564
    6665    /** The display list. */
     
    7372    /** the delete action */
    7473    private DeleteAction deleteAction;
     74    private NewAction newAction;
    7575    /** the popup menu */
    7676    private RelationDialogPopupMenu popupMenu;
     
    101101        // the new action
    102102        //
    103         NewAction newAction = new NewAction();
    104         Layer.listeners.add(newAction);
     103        newAction = new NewAction();
    105104        buttonPanel.add(new SideButton(newAction), GBC.std());
    106105
     
    134133
    135134        popupMenu = new RelationDialogPopupMenu();
    136 
    137         // register as layer listener
    138         //
     135    }
     136
     137    @Override public void showNotify() {
    139138        Layer.listeners.add(this);
    140     }
    141 
    142     @Override public void setVisible(boolean b) {
    143         super.setVisible(b);
    144         if (b) {
    145             updateList();
    146         }
    147     }
     139        Layer.listeners.add(newAction);
     140        for (OsmDataLayer layer:Main.map.mapView.getLayersOfType(OsmDataLayer.class)) {
     141            layer.data.addDataSetListener(this);
     142        }
     143    }
     144
     145    @Override public void hideNotify() {
     146        Layer.listeners.remove(this);
     147        Layer.listeners.remove(newAction);
     148        for (OsmDataLayer layer:Main.map.mapView.getLayersOfType(OsmDataLayer.class)) {
     149            layer.data.removeDataSetListener(this);
     150        }
     151    }
     152
    148153
    149154    protected int getNumRelations() {
     
    587592        public RelationListModel(DefaultListSelectionModel selectionModel) {
    588593            this.selectionModel = selectionModel;
    589         }
    590 
    591         public ArrayList<Relation> getRelations() {
    592             return relations;
    593594        }
    594595
Note: See TracChangeset for help on using the changeset viewer.