Changeset 9668 in josm
- Timestamp:
- 2016-01-29T11:55:03+01:00 (9 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java
r9062 r9668 121 121 editor.setModal(true); 122 122 editor.setVisible(true); 123 } else { 124 Main.main.getEditLayer().setRecentRelation(relation); 123 125 } 124 126 } -
trunk/src/org/openstreetmap/josm/gui/SideButton.java
r9253 r9668 90 90 } 91 91 92 public voidcreateArrow(ActionListener listener) {92 public BasicArrowButton createArrow(ActionListener listener) { 93 93 setMargin(new Insets(0, 0, 0, 0)); 94 94 BasicArrowButton arrowButton = new BasicArrowButton(SwingConstants.SOUTH, null, null, Color.BLACK, null); … … 96 96 add(arrowButton, BorderLayout.EAST); 97 97 arrowButton.addActionListener(listener); 98 return arrowButton; 98 99 } 99 100 -
trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
r9365 r9668 42 42 import org.openstreetmap.josm.actions.relation.DuplicateRelationAction; 43 43 import org.openstreetmap.josm.actions.relation.EditRelationAction; 44 import org.openstreetmap.josm.actions.relation.RecentRelationsAction; 44 45 import org.openstreetmap.josm.actions.relation.SelectMembersAction; 45 46 import org.openstreetmap.josm.actions.relation.SelectRelationAction; … … 123 124 private final transient HighlightHelper highlightHelper = new HighlightHelper(); 124 125 private final boolean highlightEnabled = Main.pref.getBoolean("draw.target-highlight", true); 126 private RecentRelationsAction recentRelationsAction; 125 127 126 128 /** … … 169 171 pane.add(filter, BorderLayout.NORTH); 170 172 pane.add(new JScrollPane(displaylist), BorderLayout.CENTER); 173 174 SideButton editButton = new SideButton(editAction, false); 175 recentRelationsAction = new RecentRelationsAction(editButton); 176 171 177 createLayout(pane, false, Arrays.asList(new SideButton[]{ 172 178 new SideButton(newAction, false), 173 new SideButton(editAction, false),179 editButton, 174 180 new SideButton(duplicateAction, false), 175 181 new SideButton(deleteRelationsAction, false), … … 191 197 192 198 updateActionsRelationLists(); 199 } 200 201 public void enableRecentRelations() { 202 recentRelationsAction.enableArrow(); 193 203 } 194 204 -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationEditor.java
r9659 r9668 67 67 this.layer = layer; 68 68 setRelation(relation); 69 layer.removeRecentRelation(relation); 69 70 } 70 71 … … 190 191 this.support.removePropertyChangeListener(listener); 191 192 } 193 194 @Override 195 public void dispose() { 196 layer.setRecentRelation(relation); 197 super.dispose(); 198 } 192 199 } -
trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
r9481 r9668 25 25 import java.util.HashMap; 26 26 import java.util.HashSet; 27 import java.util.LinkedHashMap; 28 import java.util.LinkedList; 27 29 import java.util.List; 28 30 import java.util.Map; … … 75 77 import org.openstreetmap.josm.data.osm.visitor.paint.Rendering; 76 78 import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache; 79 import org.openstreetmap.josm.data.preferences.IntegerProperty; 77 80 import org.openstreetmap.josm.data.projection.Projection; 78 81 import org.openstreetmap.josm.data.validation.TestError; … … 122 125 public final List<TestError> validationErrors = new ArrayList<>(); 123 126 127 public static final int DEFAULT_RECENT_RELATIONS_NUMBER = 20; 128 public static final IntegerProperty PROPERTY_RECENT_RELATIONS_NUMBER = new IntegerProperty("properties.last-closed-relations-size", 129 DEFAULT_RECENT_RELATIONS_NUMBER); 130 131 /** List of recent relations */ 132 private final Map<Relation, Void> recentRelations = new LinkedHashMap<Relation, Void>(PROPERTY_RECENT_RELATIONS_NUMBER.get()+1, 1.1f, true) { 133 @Override 134 protected boolean removeEldestEntry(Map.Entry<Relation, Void> eldest) { 135 return size() > PROPERTY_RECENT_RELATIONS_NUMBER.get(); 136 } 137 }; 138 139 /** 140 * Returns list of recently closed relations or null if none. 141 */ 142 public ArrayList<Relation> getRecentRelations() { 143 ArrayList<Relation> list = new ArrayList<Relation>(recentRelations.keySet()); 144 Collections.reverse(list); 145 return list; 146 } 147 148 public void setRecentRelation(Relation relation) { 149 recentRelations.put(relation, null); 150 Main.map.relationListDialog.enableRecentRelations(); 151 } 152 153 public void removeRecentRelation(Relation relation) { 154 recentRelations.remove(relation); 155 Main.map.relationListDialog.enableRecentRelations(); 156 } 157 124 158 protected void setRequiresSaveToFile(boolean newValue) { 125 159 boolean oldValue = requiresSaveToFile;
Note:
See TracChangeset
for help on using the changeset viewer.