Changeset 1806 in josm
- Timestamp:
- 2009-07-18T23:31:42+02:00 (16 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 5 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
r1804 r1806 31 31 import javax.swing.JScrollPane; 32 32 import javax.swing.JSplitPane; 33 import javax.swing.JTabbedPane; 33 34 import javax.swing.JTable; 34 35 import javax.swing.JTextField; 35 36 import javax.swing.KeyStroke; 36 37 import javax.swing.ListSelectionModel; 38 import javax.swing.SwingUtilities; 37 39 import javax.swing.event.DocumentEvent; 38 40 import javax.swing.event.DocumentListener; … … 87 89 private AutoCompletionCache acCache; 88 90 private AutoCompletionList acList; 91 private ReferringRelationsBrowserModel referrerModel; 89 92 90 93 /** the member table */ … … 121 124 memberTableModel = new MemberTableModel(); 122 125 selectionTableModel = new SelectionTableModel(getLayer()); 126 referrerModel = new ReferringRelationsBrowserModel(relation); 123 127 124 128 // populate the models … … 143 147 144 148 getContentPane().setLayout(new BorderLayout()); 145 getContentPane().add(pnl,BorderLayout.CENTER); 149 JTabbedPane tabbedPane = new JTabbedPane(); 150 tabbedPane.add(tr("Tags and Members"), pnl); 151 if (relation != null && relation.id > 0) { 152 tabbedPane.add(tr("Parent Relations"), new ReferringRelationsBrowser(getLayer(), referrerModel)); 153 } 154 155 getContentPane().add(tabbedPane,BorderLayout.CENTER); 146 156 getContentPane().add(buildOkCancelButtonPanel(), BorderLayout.SOUTH); 147 157 … … 381 391 JPanel pnl = new JPanel(); 382 392 pnl.setLayout(new BorderLayout()); 383 384 JTable tbl = new JTable(selectionTableModel,new SelectionTableColumnModel()); 393 JTable tbl = new JTable(selectionTableModel,new SelectionTableColumnModel(memberTableModel)); 385 394 tbl.setEnabled(false); 386 387 395 JScrollPane pane = new JScrollPane(tbl); 388 396 pnl.add(pane, BorderLayout.CENTER); … … 533 541 //--- copy relation action 534 542 buttonPanel.add(new SideButton(new DuplicateRelationAction())); 543 544 // -- edit action 545 EditAction editAction = new EditAction(); 546 memberTableModel.getSelectionModel().addListSelectionListener(editAction); 547 buttonPanel.add(new SideButton(editAction)); 535 548 return buttonPanel; 536 549 } … … 966 979 } 967 980 981 /** 982 * Action for editing the currently selected relation 983 * 984 * 985 */ 986 class EditAction extends AbstractAction implements ListSelectionListener { 987 public EditAction() { 988 putValue(SHORT_DESCRIPTION, tr("Edit the relation the currently selected relation member refers to")); 989 putValue(SMALL_ICON, ImageProvider.get("dialogs", "edit")); 990 putValue(NAME, tr("Edit")); 991 refreshEnabled(); 992 } 993 994 protected void refreshEnabled() { 995 setEnabled(memberTable.getSelectedRowCount() == 1 && memberTableModel.isEditableRelation(memberTable.getSelectedRow())); 996 } 997 998 public void actionPerformed(ActionEvent e) { 999 int idx = memberTable.getSelectedRow(); 1000 if (idx < 0) return; 1001 OsmPrimitive primitive = memberTableModel.getReferredPrimitive(idx); 1002 if (! (primitive instanceof Relation)) return; 1003 Relation r= (Relation)primitive; 1004 if (r.incomplete) return; 1005 RelationEditor editor = RelationEditor.getEditor(getLayer(), r, null); 1006 editor.setVisible(true); 1007 } 1008 1009 public void valueChanged(ListSelectionEvent e) { 1010 refreshEnabled(); 1011 } 1012 } 1013 1014 /** 1015 * The asynchronous task for downloading relation members. 1016 * 1017 * 1018 */ 968 1019 class DownloadTask extends PleaseWaitRunnable { 969 1020 private boolean cancelled; 970 1021 private Exception lastException; 971 972 protected void setIndeterminateEnabled(final boolean enabled) {973 EventQueue.invokeLater(974 new Runnable() {975 public void run() {976 Main.pleaseWaitDlg.setIndeterminate(enabled);977 }978 }979 );980 }981 1022 982 1023 public DownloadTask() { … … 1013 1054 protected void realRun() throws SAXException, IOException, OsmTransferException { 1014 1055 try { 1015 Main.pleaseWaitDlg.setAlwaysOnTop(true); 1016 Main.pleaseWaitDlg.toFront(); 1017 setIndeterminateEnabled(true); 1056 SwingUtilities.invokeLater( 1057 new Runnable() { 1058 public void run() { 1059 Main.pleaseWaitDlg.setAlwaysOnTop(true); 1060 Main.pleaseWaitDlg.toFront(); 1061 Main.pleaseWaitDlg.setIndeterminate(true); 1062 } 1063 } 1064 ); 1018 1065 OsmServerObjectReader reader = new OsmServerObjectReader(getRelation().id, OsmPrimitiveType.RELATION, true); 1019 1066 DataSet dataSet = reader.parseOsm(); … … 1026 1073 getLayer().data.dataSources.add(src); 1027 1074 } 1028 getLayer().fireDataChange(); 1029 1075 // FIXME: this is necessary because there are dialogs listening 1076 // for DataChangeEvents which manipulate Swing components on this 1077 // thread. 1078 // 1079 SwingUtilities.invokeLater( 1080 new Runnable() { 1081 public void run() { 1082 getLayer().fireDataChange(); 1083 } 1084 } 1085 ); 1030 1086 if (visitor.getConflicts().isEmpty()) 1031 1087 return; … … 1049 1105 lastException = e; 1050 1106 } finally { 1051 Main.pleaseWaitDlg.setAlwaysOnTop(false); 1052 setIndeterminateEnabled(false); 1107 SwingUtilities.invokeLater( 1108 new Runnable() { 1109 public void run() { 1110 Main.pleaseWaitDlg.setAlwaysOnTop(false); 1111 Main.pleaseWaitDlg.setIndeterminate(false); 1112 } 1113 } 1114 ); 1053 1115 } 1054 1116 } -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
r1804 r1806 379 379 } 380 380 } 381 382 public boolean isEditableRelation(int row) { 383 if (row < 0 || row >= members.size()) return false; 384 RelationMember member = members.get(row); 385 if (!(member.member instanceof Relation)) return false; 386 Relation r = (Relation)member.member; 387 return ! r.incomplete; 388 } 381 389 } -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableColumnModel.java
r1804 r1806 7 7 import javax.swing.table.TableColumn; 8 8 9 import org.openstreetmap.josm.gui.OsmPrimitivRenderer;10 11 9 public class SelectionTableColumnModel extends DefaultTableColumnModel { 12 public SelectionTableColumnModel() { 10 public SelectionTableColumnModel(MemberTableModel model) { 13 11 TableColumn col = null; 14 OsmPrimitivRenderer renderer = new OsmPrimitivRenderer(); 12 SelectionTableCellRenderer renderer = new SelectionTableCellRenderer(); 13 renderer.setMemberTableModel(model); 15 14 16 15 // column 0 - the member role -
trunk/src/org/openstreetmap/josm/io/OsmReader.java
r1790 r1806 11 11 import java.util.Date; 12 12 import java.util.HashMap; 13 import java.util.HashSet;14 13 import java.util.LinkedList; 15 14 import java.util.Map; 16 import java.util.Set;17 15 import java.util.Map.Entry; 18 16 import java.util.logging.Logger; … … 352 350 w.incomplete = true; 353 351 w.nodes.clear(); 352 adder.visit(w); 354 353 } else { 355 354 e.getKey().copyTo(w); -
trunk/test/config/test-functional-env.properties
r1799 r1806 16 16 # temporary results 17 17 # 18 test.functional.tempdir=C:\\data\\projekte\\eclipse-3.4.1-ws\\JOSM- new\\test\\data\\temp18 test.functional.tempdir=C:\\data\\projekte\\eclipse-3.4.1-ws\\JOSM-1769\\test\\data\\temp 19 19 -
trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java
r1796 r1806 258 258 } 259 259 assertTrue(reader.getMissingPrimitives().isEmpty()); 260 //assertTrue(reader.getSkippedWays().isEmpty());261 260 } 262 261 … … 279 278 } 280 279 assertTrue(reader.getMissingPrimitives().isEmpty()); 281 //assertTrue(reader.getSkippedWays().isEmpty());282 283 280 } 284 281 … … 301 298 } 302 299 assertTrue(reader.getMissingPrimitives().isEmpty()); 303 //assertTrue(reader.getSkippedWays().isEmpty());304 305 300 } 306 301 … … 322 317 } 323 318 assertTrue(reader.getMissingPrimitives().isEmpty()); 324 //assertTrue(reader.getSkippedWays().isEmpty());325 326 327 319 } 328 320 … … 348 340 assertEquals(1, reader.getMissingPrimitives().size()); 349 341 assertEquals(9999999, reader.getMissingPrimitives().iterator().next()); 350 //assertTrue(reader.getSkippedWays().isEmpty());351 342 } 352 343 }
Note:
See TracChangeset
for help on using the changeset viewer.