Changeset 144 in josm


Ignore:
Timestamp:
2006-10-01T19:45:33+02:00 (18 years ago)
Author:
imi
Message:
  • added plugin system
  • added plugin: mappainter (thanks NickW!)
Files:
52 added
4 edited

Legend:

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

    r142 r144  
    1212import java.net.URISyntaxException;
    1313import java.util.Collection;
     14import java.util.LinkedList;
    1415import java.util.Map;
    1516import java.util.StringTokenizer;
     
    5556import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    5657import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener;
     58import org.openstreetmap.josm.plugins.Plugin;
    5759import org.openstreetmap.josm.tools.ImageProvider;
    5860
     
    8890         */
    8991        public static MapFrame map;
     92        /**
     93         * All installed and loaded plugins (resp. their main classes)
     94         */
     95        public final Collection<Plugin> plugins = new LinkedList<Plugin>();
    9096
    9197        /**
     
    118124                }
    119125                redoUndoListener.commandChanged(0,0);
     126
     127                for (Plugin plugin : plugins)
     128                        plugin.mapFrameInitialized(map);
    120129        }
    121130
     
    236245
    237246                contentPane.updateUI();
     247               
     248                // Plugins
     249                if (pref.hasKey("plugins")) {
     250                        for (String pluginName : pref.get("plugins").split(",")) {
     251                                try {
     252                        plugins.add((Plugin)Class.forName(pluginName).newInstance());
     253                } catch (Exception e) {
     254                        e.printStackTrace();
     255                        JOptionPane.showMessageDialog(parent, tr("Could not load plugin {0}.", pluginName));
     256                }
     257                        }
     258                }
    238259        }
    239260        /**
  • src/org/openstreetmap/josm/data/osm/visitor/SimplePaintVisitor.java

    r100 r144  
    2727         * The environment to paint to.
    2828         */
    29         private final Graphics g;
     29        protected Graphics g;
    3030        /**
    3131         * MapView to get screen coordinates.
    3232         */
    33         private final NavigatableComponent nc;
    34         private static final double PHI = Math.toRadians(20);
     33        protected NavigatableComponent nc;
    3534
    36         /**
    37          * Construct the painter visitor.
    38          * @param g   The graphics to draw to.
    39          * @param mv  The view to get screen coordinates from.
    40          */
    41         public SimplePaintVisitor(Graphics g, NavigatableComponent mv) {
    42                 this.g = g;
    43                 this.nc = mv;
    44         }
     35        protected static final double PHI = Math.toRadians(20);
    4536
    4637        /**
     
    9788         * Draw a line with the given color.
    9889         */
    99         private void drawSegment(Segment ls, Color col) {
     90        protected void drawSegment(Segment ls, Color col) {
    10091                if (ls.incomplete)
    10192                        return;
     
    122113                return ColorHelper.html2color(colStr);
    123114        }
     115
     116
     117        public void setGraphics(Graphics g) {
     118        this.g = g;
     119    }
     120
     121        public void setNavigatableComponent(NavigatableComponent nc) {
     122        this.nc = nc;
     123    }
    124124}
  • src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java

    r138 r144  
    138138                if (value == null)
    139139                        selectionChanged(sel); // update whole table
    140                 else
    141                         PropertiesDialog.this.repaint(); // repaint is enough
     140               
     141                Main.parent.repaint(); // repaint all - drawing could have been changed
    142142        }
    143143
     
    185185                Main.main.editLayer().add(new ChangePropertyCommand(sel, key, value));
    186186                selectionChanged(sel); // update table
     187                Main.parent.repaint(); // repaint all - drawing could have been changed
    187188        }
    188189
  • src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

    r138 r144  
    114114        public final LinkedList<CommandQueueListener> listenerCommands = new LinkedList<CommandQueueListener>();
    115115
     116        private SimplePaintVisitor mapPainter = new SimplePaintVisitor();
     117
    116118        /**
    117119         * Construct a OsmDataLayer.
     
    138140         */
    139141        @Override public void paint(final Graphics g, final MapView mv) {
    140                 final SimplePaintVisitor visitor = new SimplePaintVisitor(g, mv);
     142                mapPainter.setGraphics(g);
     143                mapPainter.setNavigatableComponent(mv);
    141144                for (final OsmPrimitive osm : data.segments)
    142145                        if (!osm.deleted)
    143                                 osm.visit(visitor);
     146                                osm.visit(mapPainter);
    144147                for (final OsmPrimitive osm : data.ways)
    145148                        if (!osm.deleted)
    146                                 osm.visit(visitor);
     149                                osm.visit(mapPainter);
    147150                for (final OsmPrimitive osm : data.nodes)
    148151                        if (!osm.deleted)
    149                                 osm.visit(visitor);
     152                                osm.visit(mapPainter);
    150153                for (final OsmPrimitive osm : data.getSelected())
    151154                        if (!osm.deleted)
    152                                 osm.visit(visitor);
     155                                osm.visit(mapPainter);
    153156                Main.map.conflictDialog.paintConflicts(g, mv);
    154157        }
     
    335338                                new JMenuItem(new LayerListPopup.InfoAction(this))};
    336339        }
     340
     341
     342        public void setMapPainter(SimplePaintVisitor mapPainter) {
     343        this.mapPainter = mapPainter;
     344    }
    337345}
Note: See TracChangeset for help on using the changeset viewer.