Changeset 4760 in josm for trunk/src/org/openstreetmap/josm/gui/history
- Timestamp:
- 2012-01-03T21:48:04+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialogManager.java
r4674 r4760 10 10 import java.util.HashMap; 11 11 import java.util.Map; 12 12 13 import javax.swing.JOptionPane; 13 14 import javax.swing.SwingUtilities; … … 135 136 } 136 137 137 138 139 140 141 142 143 144 145 146 138 public void showHistory(final Collection<OsmPrimitive> primitives) { 139 final Collection<OsmPrimitive> notNewPrimitives = Utils.filter(primitives, notNewPredicate); 140 if (notNewPrimitives.isEmpty()) { 141 JOptionPane.showMessageDialog( 142 Main.parent, 143 tr("Please select at least one already uploaded node, way, or relation."), 144 tr("Warning"), 145 JOptionPane.WARNING_MESSAGE); 146 return; 147 } 147 148 148 149 Main.worker.submit(new ContributorTermsUpdateRunnable()); 149 150 150 Collection<OsmPrimitive> toLoad = Utils.filter(primitives, unloadedHistoryPredicate); 151 if (!toLoad.isEmpty()) { 152 HistoryLoadTask task = new HistoryLoadTask(); 153 task.add(notNewPrimitives); 154 Main.worker.submit(task); 155 } 156 157 Runnable r = new Runnable() { 158 159 @Override 160 public void run() { 161 try { 162 for (OsmPrimitive p : notNewPrimitives) { 163 History h = HistoryDataSet.getInstance().getHistory(p.getPrimitiveId()); 164 if (h == null) { 165 continue; 166 } 167 show(h); 168 } 169 } catch (final Exception e) { 170 SwingUtilities.invokeLater(new Runnable() { 171 172 @Override 173 public void run() { 174 BugReportExceptionHandler.handleException(e); 175 } 176 }); 177 } 178 179 } 180 }; 181 Main.worker.submit(r); 182 } 183 184 private final Predicate<OsmPrimitive> unloadedHistoryPredicate = new Predicate<OsmPrimitive>() { 185 186 HistoryDataSet hds = HistoryDataSet.getInstance(); 187 188 @Override 189 public boolean evaluate(OsmPrimitive p) { 190 if (hds.getHistory(p.getPrimitiveId()) == null) { 191 // reload if the history is not in the cache yet 192 return true; 193 } else if (!p.isNew() && hds.getHistory(p.getPrimitiveId()).getByVersion(p.getUniqueId()) == null) { 194 // reload if the history object of the selected object is not in the cache yet 195 return true; 196 } else { 197 return false; 198 } 199 } 200 }; 201 202 private final Predicate<OsmPrimitive> notNewPredicate = new Predicate<OsmPrimitive>() { 203 204 @Override 205 public boolean evaluate(OsmPrimitive p) { 206 return !p.isNew(); 207 } 208 }; 151 Collection<OsmPrimitive> toLoad = Utils.filter(primitives, unloadedHistoryPredicate); 152 if (!toLoad.isEmpty()) { 153 HistoryLoadTask task = new HistoryLoadTask(); 154 task.add(notNewPrimitives); 155 Main.worker.submit(task); 156 } 157 158 Runnable r = new Runnable() { 159 160 @Override 161 public void run() { 162 try { 163 for (OsmPrimitive p : notNewPrimitives) { 164 final History h = HistoryDataSet.getInstance().getHistory(p.getPrimitiveId()); 165 if (h == null) { 166 continue; 167 } 168 SwingUtilities.invokeLater(new Runnable() { 169 @Override 170 public void run() { 171 show(h); 172 } 173 }); 174 } 175 } catch (final Exception e) { 176 BugReportExceptionHandler.handleException(e); 177 } 178 179 } 180 }; 181 Main.worker.submit(r); 182 } 183 184 private final Predicate<OsmPrimitive> unloadedHistoryPredicate = new Predicate<OsmPrimitive>() { 185 186 HistoryDataSet hds = HistoryDataSet.getInstance(); 187 188 @Override 189 public boolean evaluate(OsmPrimitive p) { 190 if (hds.getHistory(p.getPrimitiveId()) == null) 191 // reload if the history is not in the cache yet 192 return true; 193 else if (!p.isNew() && hds.getHistory(p.getPrimitiveId()).getByVersion(p.getUniqueId()) == null) 194 // reload if the history object of the selected object is not in the cache yet 195 return true; 196 else 197 return false; 198 } 199 }; 200 201 private final Predicate<OsmPrimitive> notNewPredicate = new Predicate<OsmPrimitive>() { 202 203 @Override 204 public boolean evaluate(OsmPrimitive p) { 205 return !p.isNew(); 206 } 207 }; 209 208 210 209 }
Note:
See TracChangeset
for help on using the changeset viewer.