Changeset 23834 in osm for applications/editors/josm/plugins
- Timestamp:
- 2010-10-25T23:54:59+02:00 (14 years ago)
- Location:
- applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit
- Files:
-
- 2 added
- 1 deleted
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditAction.java
r23829 r23834 11 11 import org.openstreetmap.josm.data.SelectionChangedListener; 12 12 import org.openstreetmap.josm.data.osm.OsmPrimitive; 13 import org.openstreetmap.josm.gui.progress.ProgressMonitor.CancelListener;14 13 import org.openstreetmap.josm.plugins.addressEdit.gui.AddressEditDialog; 15 import org.openstreetmap.josm.plugins.addressEdit.gui.AddressEditModel;16 14 import org.openstreetmap.josm.tools.Shortcut; 17 15 18 public class AddressEditAction extends JosmAction implements 19 SelectionChangedListener, CancelListener { 16 public class AddressEditAction extends JosmAction implements SelectionChangedListener { 20 17 21 18 /** … … 23 20 */ 24 21 private static final long serialVersionUID = 1L; 25 private AddressEditModel addressModel;26 private boolean isCanceled = false;27 22 private AddressEditContainer addressEditContainer; 28 23 … … 128 123 return result.toString(); 129 124 } 130 131 @Override132 public void operationCanceled() {133 isCanceled = true;134 }135 125 } -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditContainer.java
r23830 r23834 59 59 */ 60 60 61 public class AddressEditContainer implements Visitor, DataSetListener { 61 public class AddressEditContainer implements Visitor, DataSetListener, IAddressEditContainerListener { 62 62 private HashMap<String, StreetNode> streetDict = new HashMap<String, StreetNode>(100); 63 63 private List<AddressNode> unresolvedAddresses = new ArrayList<AddressNode>(100); … … 68 68 private List<IAddressEditContainerListener> listeners = new ArrayList<IAddressEditContainerListener>(); 69 69 70 /** 71 * 72 */ 73 public AddressEditContainer() { 74 NodeEntityBase.addChangedListener(this); 75 } 76 70 77 /** 71 78 * Adds a change listener. … … 251 258 } 252 259 260 resolveAddresses(); 261 253 262 fireContainerChanged(); 254 263 } … … 311 320 public void wayNodesChanged(WayNodesChangedEvent event) { 312 321 } 322 323 @Override 324 public void containerChanged(AddressEditContainer container) { 325 326 } 327 328 @Override 329 public void entityChanged() { 330 System.out.println("entityChanged, inavlidate... :-)"); 331 invalidate(); 332 } 313 333 } -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressNode.java
r23829 r23834 137 137 setStreetName(node.getName()); 138 138 node.addAddress(this); 139 fireEntityChanged(); 139 140 } 140 141 } -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/IAddressEditContainerListener.java
r23829 r23834 16 16 public interface IAddressEditContainerListener { 17 17 /** 18 * Notifies clients th ethe container has been changed18 * Notifies clients that the container has been changed. 19 19 * @param container 20 20 */ 21 21 public void containerChanged(AddressEditContainer container); 22 23 /** 24 * Notifies clients that an entity has been changed. 25 */ 26 public void entityChanged(); 22 27 } -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/NodeEntityBase.java
r23816 r23834 16 16 import static org.openstreetmap.josm.tools.I18n.tr; 17 17 18 import java.util.ArrayList; 18 19 import java.util.List; 19 20 … … 22 23 public class NodeEntityBase implements INodeEntity, Comparable<INodeEntity> { 23 24 public static final String ANONYMOUS = tr("No name"); 25 private static List<IAddressEditContainerListener> listeners = new ArrayList<IAddressEditContainerListener>(); 24 26 25 27 protected OsmPrimitive osmObject; … … 31 33 super(); 32 34 this.osmObject = osmObject; 35 } 36 37 /** 38 * Adds a change listener. 39 * @param listener 40 */ 41 public static void addChangedListener(IAddressEditContainerListener listener) { 42 listeners.add(listener); 43 } 44 45 /** 46 * Removes a change listener. 47 * @param listener 48 */ 49 public static void removeChangedListener(IAddressEditContainerListener listener) { 50 listeners.remove(listener); 51 } 52 53 /** 54 * Notifies clients that the address container changed. 55 */ 56 protected static void fireEntityChanged() { 57 for (IAddressEditContainerListener listener : listeners) { 58 listener.entityChanged(); 59 } 33 60 } 34 61 -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/StreetNode.java
r23829 r23834 16 16 import java.util.ArrayList; 17 17 import java.util.Collections; 18 import java.util.HashMap;19 import java.util.HashSet;20 18 import java.util.List; 21 19 … … 62 60 public void addAddress(AddressNode aNode) { 63 61 lazyCreateAddresses(); 64 addresses.add(aNode); 62 addresses.add(aNode); 65 63 } 66 64 -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AbstractAddressEditAction.java
r23829 r23834 26 26 private static final long serialVersionUID = 3080414353417044998L; 27 27 28 private AddressSelectionEvent event; 28 private AddressEditSelectionEvent event; 29 29 30 30 /** … … 49 49 * @return 50 50 */ 51 public void updateEnabledState(AddressSelectionEvent ev) { 51 public void updateEnabledState(AddressEditSelectionEvent ev) { 52 52 // If the tree selection changes, we will get a new event. So this is safe. 53 53 this.event = ev; // save for later use. … … 69 69 * @param ev 70 70 */ 71 public abstract void addressEditActionPerformed(AddressSelectionEvent ev); 71 public abstract void addressEditActionPerformed(AddressEditSelectionEvent ev); 72 72 73 73 -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AddressEditDialog.java
r23830 r23834 32 32 import javax.swing.JSplitPane; 33 33 import javax.swing.JTable; 34 import javax.swing.JTree;35 34 import javax.swing.ListSelectionModel; 36 35 import javax.swing.event.ListSelectionEvent; 37 36 import javax.swing.event.ListSelectionListener; 38 import javax.swing.event.TreeSelectionEvent;39 import javax.swing.event.TreeSelectionListener;40 import javax.swing.table.DefaultTableModel;41 import javax.swing.tree.DefaultMutableTreeNode;42 import javax.swing.tree.DefaultTreeModel;43 37 44 import org.openstreetmap.josm.Main;45 import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent;46 import org.openstreetmap.josm.data.osm.event.DataChangedEvent;47 import org.openstreetmap.josm.data.osm.event.DataSetListener;48 import org.openstreetmap.josm.data.osm.event.NodeMovedEvent;49 import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent;50 import org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent;51 import org.openstreetmap.josm.data.osm.event.RelationMembersChangedEvent;52 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent;53 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent;54 38 import org.openstreetmap.josm.plugins.addressEdit.AddressEditContainer; 55 39 56 public class AddressEditDialog extends JFrame implements ActionListener, TreeSelectionListener,ListSelectionListener {40 public class AddressEditDialog extends JFrame implements ActionListener, ListSelectionListener { 57 41 private static final String CANCEL_COMMAND = "Cancel"; 58 42 private static final String OK_COMMAND = "Ok"; … … 61 45 */ 62 46 private static final long serialVersionUID = 6251676464816335631L; 63 private AddressEditContainer model;47 private AddressEditContainer addressContainer; 64 48 private JTable unresolvedTable; 65 49 private JTable incompleteTable; … … 79 63 super(tr("Edit Addresses")); 80 64 81 this. model= addressEditContainer;65 this.addressContainer = addressEditContainer; 82 66 setLayout(new BorderLayout()); 83 67 setSize(800,600); … … 88 72 if (addressEditContainer != null) { 89 73 JPanel streetPanel = new JPanel(new BorderLayout()); 90 streetList = new JTable(new StreetTableModel( model));74 streetList = new JTable(new StreetTableModel(addressContainer)); 91 75 streetList.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 92 76 streetList.getSelectionModel().addListSelectionListener(this); … … 94 78 JScrollPane scroll1 = new JScrollPane(streetList); 95 79 streetPanel.add(scroll1, BorderLayout.CENTER); 96 streetPanel.add(new JLabel(" Unresolved Addresses"), BorderLayout.NORTH);80 streetPanel.add(new JLabel("Streets"), BorderLayout.NORTH); 97 81 streetPanel.setMinimumSize(new Dimension(350, 400)); 98 82 99 83 JPanel unresolvedPanel = new JPanel(new BorderLayout()); 100 unresolvedTable = new JTable(new UnresolvedAddressesTableModel( model));84 unresolvedTable = new JTable(new UnresolvedAddressesTableModel(addressContainer)); 101 85 unresolvedTable.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 102 86 unresolvedTable.getSelectionModel().addListSelectionListener(this); … … 114 98 JPanel incompletePanel = new JPanel(new BorderLayout()); 115 99 116 incompleteTable = new JTable(new IncompleteAddressesTableModel( model));100 incompleteTable = new JTable(new IncompleteAddressesTableModel(addressContainer)); 117 101 incompleteTable.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 118 102 incompleteTable.getSelectionModel().addListSelectionListener(this); … … 128 112 this.getContentPane().add(pane, BorderLayout.CENTER); 129 113 } else { 130 streetList = new JTable(new DefaultTableModel());131 114 this.getContentPane().add(new JLabel(tr("(No data)")), BorderLayout.CENTER); 132 115 } … … 161 144 162 145 @Override 163 public void valueChanged(TreeSelectionEvent event) { 164 // Updates the selection 165 if (event.getSource() == streetList) { 166 int selStr = streetList.getSelectedRow(); 167 168 } 146 public void valueChanged(ListSelectionEvent e) { 169 147 170 /*171 AddressSelectionEvent ev = new AddressSelectionEvent(event.getSource(),172 selStreet, selUnrAddr, selIncAddr);148 AddressEditSelectionEvent ev = new AddressEditSelectionEvent(e.getSource(), 149 streetList, unresolvedTable, incompleteTable, addressContainer); 150 173 151 for (AbstractAddressEditAction action : actions) { 174 152 action.updateEnabledState(ev); 175 }*/ 176 } 177 178 @Override 179 public void valueChanged(ListSelectionEvent e) { 180 // TODO Auto-generated method stub 181 153 } 182 154 } 183 155 -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AssignAddressToStreetAction.java
r23829 r23834 14 14 package org.openstreetmap.josm.plugins.addressEdit.gui; 15 15 16 import java.awt.event.ActionEvent; 17 18 import javax.swing.AbstractAction; 19 import javax.swing.tree.DefaultMutableTreeNode; 16 import static org.openstreetmap.josm.tools.I18n.tr; 20 17 21 18 import org.openstreetmap.josm.plugins.addressEdit.AddressNode; 22 19 import org.openstreetmap.josm.plugins.addressEdit.StreetNode; 23 import static org.openstreetmap.josm.tools.I18n.tr;24 20 25 21 public class AssignAddressToStreetAction extends AbstractAddressEditAction { … … 36 32 37 33 @Override 38 public void addressEditActionPerformed(AddressSelectionEvent ev) { 39 DefaultMutableTreeNode streetNode = ev.getSelectedStreet(); 40 StreetNode sNode = null; 41 AddressNode aNode = null; 34 public void addressEditActionPerformed(AddressEditSelectionEvent ev) { 35 StreetNode streetNode = ev.getSelectedStreet(); 42 36 43 if (streetNode != null) { 44 sNode = (StreetNode) streetNode.getUserObject(); 37 38 if (streetNode != null && ev.getSelectedIncompleteAddresses() != null) { 39 for (AddressNode addrNode : ev.getSelectedUnresolvedAddresses()) { 40 addrNode.assignStreet(streetNode); 41 System.out.println("Assign " + addrNode + " to " + streetNode); 42 } 45 43 } 46 47 DefaultMutableTreeNode addrNode = ev.getSelectedUnresolvedAddress();48 if (addrNode != null) {49 aNode = (AddressNode) addrNode.getUserObject();50 }51 52 if (sNode != null && aNode != null) {53 System.out.println("Assign " + aNode + " top " + sNode);54 55 aNode.assignStreet(sNode);56 addrNode.removeFromParent();57 }58 44 } 59 45 60 46 @Override 61 public void updateEnabledState(AddressSelectionEvent ev) { 47 public void updateEnabledState(AddressEditSelectionEvent ev) { 62 48 super.updateEnabledState(ev); 63 setEnabled(ev.getSelectedStreet() != null && ev.getSelectedUnresolvedAddress() != null); 49 setEnabled(ev.getSelectedStreet() != null && ev.getSelectedUnresolvedAddresses() != null); 64 50 } 65 51 -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/IncompleteAddressesTableModel.java
r23830 r23834 16 16 import static org.openstreetmap.josm.tools.I18n.tr; 17 17 18 import javax.swing.table.DefaultTableModel;19 18 20 19 import org.openstreetmap.josm.plugins.addressEdit.AddressEditContainer; 21 20 import org.openstreetmap.josm.plugins.addressEdit.AddressNode; 22 21 23 public class IncompleteAddressesTableModel extends DefaultTableModel { 22 public class IncompleteAddressesTableModel extends AddressEditTableModel { 23 /** 24 * 25 */ 26 private static final long serialVersionUID = -5951629033395186324L; 27 24 28 private static final int NUMBER_OF_COLUMNS = 5; 25 29 private static final String[] COLUMN_NAMES = new String[]{tr("Country"), tr("State"), tr("City"), tr("Post Code"), tr("Street")}; … … 28 32 29 33 /** 30 *31 */32 private static final long serialVersionUID = 424009321818130586L;33 34 private AddressEditContainer addressContainer;35 36 /**37 34 * @param addressContainer 38 35 */ 39 36 public IncompleteAddressesTableModel(AddressEditContainer addressContainer) { 40 super(); 41 this.addressContainer = addressContainer; 37 super(addressContainer); 42 38 } 43 39 -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/StreetTableModel.java
r23830 r23834 14 14 package org.openstreetmap.josm.plugins.addressEdit.gui; 15 15 16 import javax.swing.table.DefaultTableModel;17 16 import static org.openstreetmap.josm.tools.I18n.tr; 17 18 18 import org.openstreetmap.josm.plugins.addressEdit.AddressEditContainer; 19 19 import org.openstreetmap.josm.plugins.addressEdit.StreetNode; 20 20 21 public class StreetTableModel extends DefaultTableModel {21 public class StreetTableModel extends AddressEditTableModel { 22 22 23 23 private static final int NUMBER_OF_COLUMNS = 4; … … 30 30 private static final long serialVersionUID = 424009321818130586L; 31 31 32 private AddressEditContainer addressContainer;33 34 32 /** 35 33 * @param addressContainer 36 34 */ 37 35 public StreetTableModel(AddressEditContainer addressContainer) { 38 super(); 39 this.addressContainer = addressContainer; 36 super(addressContainer); 40 37 } 41 38 -
applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/UnresolvedAddressesTableModel.java
r23830 r23834 31 31 import static org.openstreetmap.josm.tools.I18n.tr; 32 32 33 import javax.swing.table.DefaultTableModel;34 35 33 import org.openstreetmap.josm.plugins.addressEdit.AddressEditContainer; 36 34 import org.openstreetmap.josm.plugins.addressEdit.AddressNode; … … 42 40 */ 43 41 44 public class UnresolvedAddressesTableModel extends DefaultTableModel {42 public class UnresolvedAddressesTableModel extends AddressEditTableModel { 45 43 46 44 private static final int NUMBER_OF_COLUMNS = 2; … … 52 50 */ 53 51 private static final long serialVersionUID = 424009321818130586L; 54 55 private AddressEditContainer addressContainer; 56 52 57 53 /** 58 54 * @param addressContainer 59 55 */ 60 56 public UnresolvedAddressesTableModel(AddressEditContainer addressContainer) { 61 super(); 62 this.addressContainer = addressContainer; 57 super(addressContainer); 63 58 } 64 59
Note:
See TracChangeset
for help on using the changeset viewer.